package com.cctc.juc.source.Athread;

import java.util.concurrent.RunnableFuture;
import java.util.concurrent.ScheduledFuture;

/**
 * [“可调度的” Thread 线程异步任务 Runnable 执行 & 交互] 接口
 * 描述信息：RunnableScheduledFuture 继承自 RunnableFuture 和 ScheduledFuture，同时具备了 Runnable Delayed、和 Future 的能力。
 * - Runnable 能力：作为 Thread 线程依赖接口，用于异步执行目标任务（线程业务逻辑）。
 * - Delayed 能力：用于获取 Runnable 异步任务的延迟执行时间。
 * - Future 能力：依赖于 Callable，可以对 Callable 异步任务执行过程进行控制 & 交互、获取 Callable 的执行结果。
 * 核心流程：Thread.run() -> RunnableFuture.run() [即 Runnable.run()] -> Delayed.getDelay() -> Callable.run()。
 */
public interface JRunnableScheduledFuture<V> extends RunnableFuture<V>, ScheduledFuture<V> {
    /**
     * 如果此任务是周期性的，则返回 true。
     * - 周期性任务可能会根据某个时间表重新运行。
     * - 非周期性任务只能运行一次。
     */
    boolean isPeriodic();
}
